/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package q10.Functii.FunctiiTrigonometrice;

/**
 *
 * @author valicu
 */

import q10.Functii.Functie;

/**
 * clasa Arccos trateaza functia trigonometrica arccosinus,si mosteneste clasa
 * Functie
 *
 */
public class Tg extends Functie {
	/**
	 * functia calcul(double aux1) calculeaza valoarea functiei intr-un anumit pct
	 * @param aux1-primeste ca argument o variabila double reprezentand
	 * valoarea in care dorim sa calculam valoarea functiei
	 * @return returneaza un double reprez valoarea fucntiei

	public static double calcul(double aux1)
	{
		return Math.tan(aux1);
	}
	/**
	 * returneaza chiar valoarea argumentului functiei

	public double calcul()
	{
		if (fStang == null)
			System.exit(1);
		return calcul(fStang.calcul());
	}
	/**
	 * returneaza un string reprezentand derivarea functiei

	public String derivare()
	{
		if (fStang == null)
			System.exit(1);
		return Produs.concatTermens(fStang.derivare(),
				Cat.concatTermens("1",
						Produs.concatTermens(Cos.concatTermeni(fStang.toString()),
								Cos.concatTermeni(fStang.toString()))));
	}
	/**
	 * calculeaza valoarea derivatei intr-un anumit punct

	public double calculDerivata()
	{
		if (fStang == null)
			System.exit(1);
		return Produs.Calcul(fStang.calculDerivata(),
				Cat.Calcul(1,
						Produs.Calcul(Cos.calcul(fStang.calcul()),
								Cos.calcul(fStang.calcul()))));
	}
	public String toString()
	{
		if (fStang == null)
			System.exit(1);
		return concatTermeni(fStang.toString());
	}
	/**
	 * este folosita pentru construirea unui sir de caractere reprez
	 * numele fuctiei si argumentul acesteia
	 * @param aux1 primeste ca argument un string reprezentang
	 * argu,emtul functiei
	 * @return returneaza un string reprezentand numele functiei
	 */
	public String concatTermeni(String aux1)
	{
		String aux;
		int nrP;
		nrP = aux1.charAt(0) == '(' ? 0 : 2;
		aux = "tg";
		if (nrP != 0) aux += "(";
		aux += aux1;
		if (nrP != 0) aux += ")";
		return aux;
	}
	/*public double calculeazaValoare() {
		return this.calcul();
	}*/
}
